1. Technical Field
The present invention relates in general to improved computer system resource optimization and, in particular, to setting operation based resource utilization thresholds for resource use by a process. Still more particularly, the present invention relates to learning actual resource use by a process over a sampling period, determining an operation based resource utilization threshold for resource use by the process, and storing the operation based resource utilization threshold for access by workload managers controlling ongoing resource use by the process.
2. Description of the Related Art
Most software applications and executable processes require system resources, such as memory and processors, for execution within a computer system or server system environment. In addition, most processes will utilize all the available system resources unless restricted to use of a threshold amount of systems resources. Software applications, in particular, are typically designed to work on any hardware platform with a minimum amount of system resources available, so that once the minimum system resource requirements are met, the software application is not restrained on use of as much of the remaining system resources.
Responsive to processes that grab all the available system resources, many software-based system resource optimization tools have developed in an attempt to optimize the memory available. For example, one software-based memory management tool attempts to optimize memory availability and use by compressing unused portions of memory, which are generally filled with zeros, to provide the illusion that there is more memory available than the actual physical memory installed and enable an operating system to manage multiple running applications at one time. Compressing memory, however, is limited because if no additional memory exists, then an application requesting additional memory is still memory constrained. Another software-based memory management tool attempts to defragment memory to free up additional memory spaces by moving all the memory used by an application to a contiguous block. Defragmentation software, however, is also limited because defragmentation reduces application performance as content is moved around and even after defragmentation, there may not be sufficient contiguous memory to meet the memory requirements of an additional application. Further, both memory compression and memory defragmentation are memory optimization solutions that react to the memory use by processes, such that memory grabbing by applications is only limited by the amount of memory available after compression or fragmentation.
Within a server system or other network based execution environment, the problem of applications grabbing as many system resources as possible is amplified because the total amount of available resources is typically expanded to handle multiple simultaneously running processes. Thus, server systems and other network based execution environments may implement a software-based workload manager, such as IBM's Workload Manager, that caps utilization of resources by each process to a threshold limit. In particular, rather than attempt to manage efficiency of resource use by a process, the workload manager just monitors memory and CPU use by a process and places a cap on use if the process meets or exceeds memory and CPU limits. A limitation of workload managers and other resource use restriction managers is that these managers set the same standardized resource utilization thresholds to all processes, regardless of the actual operational resource use by processes. This limitation of applying standardized resource utilization thresholds is particularly disadvantageous in a grid environment or other distributed resource environment where heterogeneous resources are managed by different workload managers, but grouped to form an execution environment for a particular job, and thus the actual resources available for execution of a process are distributed among multiple workload and optimization managers.
Therefore, in view of the foregoing, there is a need for a method, system, and program for learning the actual resource use of the total amount of system resources available by a process, determining a operation based threshold of resource use for the process, and teaching the process the operation based threshold, so that workload managers apply operation based, process specific thresholds when capping resource use by a process.